home *** CD-ROM | disk | FTP | other *** search
- ;==========================================================================;
- ; 8250 hardware constants ;
- ;==========================================================================;
-
- ;--------------------------------------------------------------------------;
- ; Address offsets ;
- ;--------------------------------------------------------------------------;
-
- rbr_8250 EQU 00H ; xF8 Receive Buffer Register
- thr_8250 EQU 00H ; xF8 Transmitter Holding Register
- ier_8250 EQU 01H ; xF9 Interrupt Enable Register
- iir_8250 EQU 02H ; xFA Interrupt Identification Register
- fcr_8250 EQU 02H ; xFA FIFO Control (write only)
- lcr_8250 EQU 03H ; xFB Line Control Register
- mcr_8250 EQU 04H ; xFC Modem Control Register
- lsr_8250 EQU 05H ; xFD Line Status Register
- msr_8250 EQU 06H ; xFE Modem Status Register
- dll_8250 EQU 00H ; xF8 Divisor Latch Least Significant
- dlm_8250 EQU 01H ; xF9 Divisor Latch Most Significant
-
- ;--------------------------------------------------------------------------;
- ; Interrupt enable register definition ;
- ;--------------------------------------------------------------------------;
-
- ; EQU 11110000B ; Not used
- ier_8250_ms EQU 00001000B ; Modem status interrupt enable
- ier_8250_rls EQU 00000100B ; Receive line status interrupt enable
- ier_8250_thre EQU 00000010B ; Transmit holding register interrupt enable
- ier_8250_rda EQU 00000001B ; Receive data available interrupt enable
-
- ;--------------------------------------------------------------------------;
- ; Interrupt identification register definition ;
- ;--------------------------------------------------------------------------;
-
- ; EQU 00110000B ; Not used -- Always zero
- ; EQU ....xxx.B ; These bites determine the interrupt type
- iir_8250_ip EQU 00000001B ; If this bit = 0 then interrupt pending
- iir_8250_ms EQU 00000000B ; Modem status interrupt
- iir_8250_thre EQU 00000010B ; Transmit holding register empty interrupt
- iir_8250_rda EQU 00000100B ; Receive data available interrupt
- iir_8250_rls EQU 00000110B ; Receive line status interrupt
- iir_8250_rto EQU 00001100B ; Receive timeout (FIFO mode only)
- iir_8250_fifo EQU 11000000B ; FIFO mode if on
-
- ;--------------------------------------------------------------------------;
- ; Line control register definition ;
- ;--------------------------------------------------------------------------;
-
- ; EQU ......xxB ; Word size select
- lcr_8250_ws5 EQU 00000000B ; Word select -- 5 bits
- lcr_8250_ws6 EQU 00000001B ; Word select -- 6 bits
- lcr_8250_ws7 EQU 00000010B ; Word select -- 7 bits
- lcr_8250_ws8 EQU 00000011B ; Word select -- 8 bits
-
- lcr_8250_s2 EQU 00000100B ; 2 stop bits wanted instead of 1
- lcr_8250_pe EQU 00001000B ; Parity enable -- 1 = parity bit wanted
- lcr_8250_eps EQU 00010000B ; Even parity select -- 1 = even parity
- lcr_8250_sp EQU 00100000B ; Parity stick -- 1 = stick parity on
- lcr_8250_sb EQU 01000000B ; Set Break -- Latches output at 0 state
- lcr_8250_dlab EQU 10000000B ; Divisior Latch Access Bit -- 1 = divisor
-
- ;--------------------------------------------------------------------------;
- ; Modem control register definition ;
- ;--------------------------------------------------------------------------;
-
- ; EQU 000.....B ; Not used
- mcr_8250_loop EQU 00010000B ; Loop back mode
- mcr_8250_out2 EQU 00001000B ; OUT2 on -- This enables interrupts
- mcr_8250_out1 EQU 00000100B ; OUT1 on
- mcr_8250_rts EQU 00000010B ; Request To Sent (RTS)
- mcr_8250_dtr EQU 00000001B ; Data Terminal Ready (DTR)
-
- hon_8250 EQU 00001011B ; 8250 Initialization and handshaking constant
- ; Gives DTR, RTS, and OUT2. OUT2 controls
- ; the IBM ASYNC card interrupt enable
-
- hoff_8250 EQU 00001000B ; 8250 Handshaking off. Gives only OUT2.
- ; TNC1 uses RTS, TNC2 uses DTR.
-
- ;--------------------------------------------------------------------------;
- ; Line status register definition ;
- ;--------------------------------------------------------------------------;
-
- ; EQU x.......B ; Not used
- lsr_8250_tsre EQU 01000000B ; Transmit shift register empty
- lsr_8250_thre EQU 00100000B ; Transmit holding register empty (THRE)
- lsr_8250_bi EQU 00010000B ; Break interrupt
- lsr_8250_fe EQU 00001000B ; Framing error
- lsr_8250_pe EQU 00000100B ; Parity error
- lsr_8250_or EQU 00000010B ; Overrun error
- lsr_8250_dr EQU 00000001B ; Receive data ready (RDA)
-
- ;--------------------------------------------------------------------------;
- ; Modem status register definition ;
- ;--------------------------------------------------------------------------;
-
- msr_8250_rlsd EQU 10000000B ; Receive line signal detect (DCD)
- msr_8250_ri EQU 01000000B ; Ring indicator (RI)
- msr_8250_dsr EQU 00100000B ; Dataset ready (DSR)
- msr_8250_cts EQU 00010000B ; Clear to send (CTS)
-
- ; These are deltas.. They turn on if the signal has changed since last
- ; time you read this register
-
- msr_8250_drlsd EQU 00001000B ; Delta Receive line signal detect (DCD)
- msr_8250_dri EQU 00000100B ; Delta Ring indicator (RI)
- msr_8250_ddsr EQU 00000010B ; Delta Dataset ready (DSR)
- msr_8250_dcts EQU 00000001B ; Delta Clear to send (CTS)
-
- ;--------------------------------------------------------------------------;
- ; FIFO control register definition ;
- ;--------------------------------------------------------------------------;
-
- fcr_8250_trig EQU 11000000B ; Receive trigger
- fcr_8250_trig1 EQU 00000000B ; Trigger on 1 byte
- fcr_8250_trig4 EQU 01000000B ; Trigger on 4 bytes
- fcr_8250_trig8 EQU 10000000B ; Trigger on 8 bytes
- fcr_8250_trig14 EQU 11000000B ; Trigger on 14 bytes
- fcr_8250_tmod1 EQU 00001000B ; Switch pins to mode1
- fcr_8250_tclr EQU 00000100B ; Transmit FIFO clear
- fcr_8250_rclr EQU 00000010B ; Receive FIFO clear
- fcr_8250_enabl EQU 00000001B ; FIFO enable
-